home *** CD-ROM | disk | FTP | other *** search
-
-
-
- FUNCTION
-
- Enclosed is a majik tool for detecting invisible bugs in programs; _The
- Enforcer_ uses the MMU to build a shroud of protection over anything
- that is not legal memory. Any "empty holes" in the address space are
- marked as illegal by _Enforcer_. Reads of the system ROMs are allowed,
- but not writes. With the exception of longword reads of location 4,
- the lowest 1K of memory is completely off-limits.
-
- Enforcer runs on any Amiga or OS revision, as long a the MMU is not
- already in use. This version of Enforcer also works on the A3000 under
- SuperKickstart (V1.3 or 2.0). Under V1.3, enforcer requires SetPatch
- version 1.38 or later.
-
-
-
- SETUP
- Connect a terminal or another Amiga to the serial port of your machine.
- If you don't have an external terminal, just use a modem & terminal
- software on the same machine. Most modems simply echo back characters
- when not on-line.
-
- Execute "enforcer".
-
- Execute "lawbreaker" to verify that everything is working. Lawbreaker
- does two illegal memory references.
-
-
-
- DESCRIPTION
-
- When an illegal access is detected, the power LED will flash and a
- detailed message will be sent out the serial port (at the default
- speed). Illegal writes are aborted, illegal reads return NULL data.
- For example:
-
- Program Counter (approximate)= 783C460 Fault address =DEADBEEF
- User stack pointer = 7860ABC DOS Proccess address = 7839F98
- Data: 00000001 01E0F0FB 00000FA0 0783AE18 00000001 01E0987F 01E0A93D 0783C3EC
- Addr: 0783AE18 0785FB28 07810114 0783C3EC 07860AC0 00F8F56A 00F8F55E 078021D0
- Status register =$8 Special status word =$729 (WRITE-WORD)
- Data output buffer =$FFFFADEF (o)
- Process/CLI = Background CLI ,"lawbreaker"
- Hunk-O-Matic says: PC address is in hunk #0, near offset $70
-
-
-
- CLI command "lawbreaker" has written the word value $ADEF to location
- $DEADBEEF. The write was aborted. With the information given, it is
- usually quite easy to figure out what went wrong.
-
-
-
- Remote keystrokes:
- ^S - pause. You may have to press it more than once.
- ^Q - resume
- ^X - When in ^S, press ^X to suspend _Enforcer_ reporting.
- Use ^Q to resume.
-
-
- Command line options:
- on
- fprotect ;Same as on, but write protects $F00000-$F7FFFF
- off
-
-
-
-
- Notes:
-
- Illegal hits from CLI commands named "metascope" or "wack" are ignored.
-
- Rebooting an A3000 running Enforcer causes the SuperKickstart to be
- reloaded from scratch next time you boot. Some call this a feature.
- This will, however, kill RAD:. When enforcer is off, SuperKickstart is
- not reloaded.
-
- The Alert() system call writes to locations in the $180-$1C0 area.
-
-
- Bugs:
- Won't work on certain third-party processor boards with non-autoconfig
- memory.
-